package com.yanqu.road.server.gameplayer;

import com.yanqu.road.server.gameplayer.module.base.AbsGeneralModule;
import com.yanqu.road.server.manger.player.GamePlayerMgr;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

@SuppressWarnings("rawtypes")
public abstract class AbsGamePlayer {

	protected Map<Class<?>, AbsGeneralModule> moduleMap = new LinkedHashMap<>();

	protected List<AbsGeneralModule> moduleList = new ArrayList<>();

	public void addModule(AbsGeneralModule module) {
		if (!moduleMap.containsKey(module.getClass())) {
			moduleMap.put(module.getClass(), module);
			moduleList.add(module);
		} else {
			GamePlayerMgr.getLogger().error("!!!!!!重复的模块类:{}!!!!!!!!", module.getClass().getName());
		}
	}

	public List<AbsGeneralModule> getModuleList() {
		return moduleList;
	}

}
